package com.cyl.wms.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.ruoyi.common.core.domain.BaseAudit;
import lombok.Data;

/**
 * 入库单
 * @TableName wms_receipt_order
 */
@TableName(value ="wms_receipt_order")
@Data
public class ReceiptOrder extends BaseAudit {
    /**
     * 
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 入库单号
     */
    private String receiptOrderNo;

    /**
     * 入库类型
     */
    private Integer receiptOrderType;

    /**
     * 供应商
     */
    private Long supplierId;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 订单金额
     */
    private BigDecimal payableAmount;

    /**
     * 入库状态
     */
    private Integer receiptOrderStatus;

    /**
     * 备注
     */
    private String remark;

    /**
     * 删除标识
     */
    private Integer delFlag;
    /**
     * 波次号
     */
    private String waveNo;

    /**
     * 经手人ID
     */
    private Integer handlerId;

    /**
     * 部门ID
     */
    private Integer departmentId;

    /**
     * 票据类型
     */
    private String receiptType;

    /**
     * 付款类型
     */
    private String paymentType;

    /**
     * 货币
     */
    private String currency;

    /**
     * 汇率
     */
    private BigDecimal exchangeRate;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        ReceiptOrder other = (ReceiptOrder) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getReceiptOrderNo() == null ? other.getReceiptOrderNo() == null : this.getReceiptOrderNo().equals(other.getReceiptOrderNo()))
            && (this.getReceiptOrderType() == null ? other.getReceiptOrderType() == null : this.getReceiptOrderType().equals(other.getReceiptOrderType()))
            && (this.getSupplierId() == null ? other.getSupplierId() == null : this.getSupplierId().equals(other.getSupplierId()))
            && (this.getOrderNo() == null ? other.getOrderNo() == null : this.getOrderNo().equals(other.getOrderNo()))
            && (this.getPayableAmount() == null ? other.getPayableAmount() == null : this.getPayableAmount().equals(other.getPayableAmount()))
            && (this.getReceiptOrderStatus() == null ? other.getReceiptOrderStatus() == null : this.getReceiptOrderStatus().equals(other.getReceiptOrderStatus()))
            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()))
            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getWaveNo() == null ? other.getWaveNo() == null : this.getWaveNo().equals(other.getWaveNo()))
            && (this.getHandlerId() == null ? other.getHandlerId() == null : this.getHandlerId().equals(other.getHandlerId()))
            && (this.getDepartmentId() == null ? other.getDepartmentId() == null : this.getDepartmentId().equals(other.getDepartmentId()))
            && (this.getReceiptType() == null ? other.getReceiptType() == null : this.getReceiptType().equals(other.getReceiptType()))
            && (this.getPaymentType() == null ? other.getPaymentType() == null : this.getPaymentType().equals(other.getPaymentType()))
            && (this.getCurrency() == null ? other.getCurrency() == null : this.getCurrency().equals(other.getCurrency()))
            && (this.getExchangeRate() == null ? other.getExchangeRate() == null : this.getExchangeRate().equals(other.getExchangeRate()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getReceiptOrderNo() == null) ? 0 : getReceiptOrderNo().hashCode());
        result = prime * result + ((getReceiptOrderType() == null) ? 0 : getReceiptOrderType().hashCode());
        result = prime * result + ((getSupplierId() == null) ? 0 : getSupplierId().hashCode());
        result = prime * result + ((getOrderNo() == null) ? 0 : getOrderNo().hashCode());
        result = prime * result + ((getPayableAmount() == null) ? 0 : getPayableAmount().hashCode());
        result = prime * result + ((getReceiptOrderStatus() == null) ? 0 : getReceiptOrderStatus().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getWaveNo() == null) ? 0 : getWaveNo().hashCode());
        result = prime * result + ((getHandlerId() == null) ? 0 : getHandlerId().hashCode());
        result = prime * result + ((getDepartmentId() == null) ? 0 : getDepartmentId().hashCode());
        result = prime * result + ((getReceiptType() == null) ? 0 : getReceiptType().hashCode());
        result = prime * result + ((getPaymentType() == null) ? 0 : getPaymentType().hashCode());
        result = prime * result + ((getCurrency() == null) ? 0 : getCurrency().hashCode());
        result = prime * result + ((getExchangeRate() == null) ? 0 : getExchangeRate().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", receiptOrderNo=").append(receiptOrderNo);
        sb.append(", receiptOrderType=").append(receiptOrderType);
        sb.append(", supplierId=").append(supplierId);
        sb.append(", orderNo=").append(orderNo);
        sb.append(", payableAmount=").append(payableAmount);
        sb.append(", receiptOrderStatus=").append(receiptOrderStatus);
        sb.append(", remark=").append(remark);
        sb.append(", delFlag=").append(delFlag);
        sb.append(", waveNo=").append(waveNo);
        sb.append(", handlerId=").append(handlerId);
        sb.append(", departmentId=").append(departmentId);
        sb.append(", receiptType=").append(receiptType);
        sb.append(", paymentType=").append(paymentType);
        sb.append(", currency=").append(currency);
        sb.append(", exchangeRate=").append(exchangeRate);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}